home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 26.zip / BS1 part 26 / C for beginners.adf / source / arg_math.c < prev    next >
C/C++ Source or Header  |  1978-01-17  |  872b  |  46 lines

  1. /* arg_math.c 23.1 */
  2. extern double atof();  /* Declaration */
  3.  
  4. int error = 0;
  5.  
  6.  
  7. void main(argc, argv)
  8. int argc;
  9. char *argv[];
  10. {
  11.    double result, value();
  12.  
  13.    if(argc != 4)
  14.      printf("\nWrong Entry\nCall: number1 # number2\n"); 
  15.    else
  16.      {
  17.        result = value(argv[1], argv[2], argv[3]);
  18.        if(!error)
  19.      printf("\n%s %s %s = %.9lf\n", argv[1], argv[2], argv[3], result);
  20.      }
  21. }
  22.  
  23. double value(num1, op, num2)
  24. char *num1, *op, *num2;
  25. {
  26.     double z1 = atof(num1);
  27.     double z2 = atof(num2);
  28.  
  29.     switch(*op)   /* only the first character */
  30.       {
  31.         case '/':
  32.           return(z1 / z2);
  33.         case '*':
  34.           return(z1 * z2);
  35.         case '-':
  36.           return(z1 - z2);
  37.         case '+':
  38.           return(z1 + z2);
  39.         default:
  40.           printf("\nUnknown Operator >%s<\n", 7, op);
  41.           error = 1;
  42.           return(0.0);
  43.       }
  44. }
  45.  
  46.